#ifndef ENTIERCONTRAINT_H_
#define ENTIERCONTRAINT_H_

#include <string>
using namespace std;

/*! \file EntierContraint.h
    \brief La spécification de la classe EntierContraint
    
    Décrit la liste des méthodes et attributs associés à la classe EntierContraint
    \author Inconnu
    \date 23.09.2003
 */
/*! \class EntierContraint
    \brief La classe représentant les entiers. contraints.
    
    Cette classe permet de représenter sous la forme d'un objet 
    une variable de type entier. Les méthodes suivantes sont associées
    à un objet de type entier :
    \li getValeur
    \li saisir
    \li afficher
 */
class EntierContraint {
  private:
	/*! \var int min
	   \brief  Contient la valeur minimale d'un entier.
	 */
	int min;

	/*! \var int max
	    \brief  Contient la valeur maximale d'un entier.
	 */
	int max;

	/*! \var int valeur
	    \brief  Contient la valeur de l'entier.
	 */
	int valeur;
    
  public:
	/*! \fn EntierContraint(int min, int max)
	    \brief Constructeur de la classe EntierContraint. 
	    
	    Ce constructeur fixe les valeurs minimale et maximale
	    permises pour la valeur de l'entier
	    \param min - la valeur minimale
	    \param max - la valeur maximale
	 */
	EntierContraint(int min, int max);

	/*! \fn int getValeur()
	    \brief Retourne la valeur de l'entier.
	    \return la valeur de l'entier
	 */
    int getValeur();
	
    /*! \fn saisir(string message="Entrez un nombre");
	    \brief Permet de saisir la valeur.
	    
	    Cette fonction utilise un message de saisie par défaut
	    mais on peut le modifier.
	    \param message - le message de saisie
	 */
    void saisir(string message="Entrez un nombre");

	/*! \fn afficher(char separateur=' ');
	    \brief Affiche la valeur
	 
	    La fonction permet l'affichage de la valeur
	    avec un symbole de séparation 
	    \param separateur - le symbole de séparation
	 */
	void afficher(char separateur=' ');
};
#endif
